package com.yami.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yami.shop.bean.model.ShopLink;
import org.springframework.http.ResponseEntity;

/**
 * 店铺链接服务接口
 */
public interface ShopLinkService {
    
    /**
     * 创建店铺链接
     * 
     * @param shopLink 店铺链接信息
     * @return 操作结果
     */
    ResponseEntity<ShopLink> createShopLink(ShopLink shopLink);
    
    /**
     * 更新店铺链接
     * 
     * @param shopLink 店铺链接信息
     * @return 操作结果
     */
    ResponseEntity<Void> updateShopLink(ShopLink shopLink);
    
    /**
     * 根据ID获取店铺链接
     * 
     * @param id 链接ID
     * @return 店铺链接信息
     */
    ResponseEntity<ShopLink> getShopLinkById(Long id);
    
    /**
     * 根据店铺ID获取店铺链接
     * 
     * @param shopId 店铺ID
     * @return 店铺链接信息
     */
    ResponseEntity<ShopLink> getShopLinkByShopId(Long shopId);
    
    /**
     * 根据短地址获取店铺链接
     * 
     * @param shortUrl 短地址
     * @return 店铺链接信息
     */
    ResponseEntity<ShopLink> getShopLinkByShortUrl(String shortUrl);
    
    /**
     * 分页查询店铺链接
     * 
     * @param page 分页参数
     * @param shopId 店铺ID
     * @param status 链接状态
     * @return 分页结果
     */
    ResponseEntity<IPage<ShopLink>> listShopLinksByPage(Page page, Long shopId, Integer status);
    
    /**
     * 更新店铺链接状态
     * 
     * @param id 链接ID
     * @param status 链接状态
     * @return 操作结果
     */
    ResponseEntity<Void> updateShopLinkStatus(Long id, Integer status);
    
    
    /**
     * 生成店铺短链接
     * 
     * @param shopId 店铺ID
     * @return 短链接
     */
    ResponseEntity<ShopLink> generateShopShortLink(Long shopId);
} 